﻿#define  _CRT_SECURE_NO_WARNINGS 
#include <errno.h>
#include <string.h>
#include <stdio.h>  
//静态数组 cache[MAX] 的大小为 41，即最多缓存到 fibonacci(40)。
//若需计算更大的 n，需增大 MAX 的值（如 MAX = 100）。


//我们打印⼀下0~10这些错误码对应的信息
//int main()
//{
//	int i = 0;
//	for (i = 0; i <= 10; i++) {
//		printf("%d: %s\n", i, strerror(i));
//	}
//	return 0;
//}

//int test(int a[3][3])
//{
//	int (*p)[3];
//	int sum = 0;
//	p = a;
//	sum = p[0][0] + p[1][1] + p[2][2] + p[2][0] + p[1][1] + p[0][2] - p[1][1];
//	return sum;
//}
//int test2(int a[3][3])
//{
//	int sum = 0;
//	int mid = 0;
//	for (int i = 0; i < 3; i++)
//	{
//		mid += a[i][i];
//		sum += a[i][2 - i];
//	}
//	sum -= a[1][1];
//	return mid + sum;
//}
//int main()
//{
//	int a[3][3] = { 1,2,3,4,5,6,7,8,9 };
//	int sum = test(a);
//	int cal = test2(a);
//	printf("%d\n", sum);
//	printf("%d\n", cal);
//	return 0;
//}
//long long fit(int n)
//{
//	static long long cache[MAX] = { 0 }; // 静态缓存数组，初始化为0
//	if (n <= 1)
//		return n;
//	if(cache[n] != 0) return cache[n]; // 检查缓存，直接返回已计算的值
//			cache[n]=fit(n - 1) + fit(n - 2);
//			return cache[n];
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	long long num = fit(n);
//	printf("%lld\n", num);
//	return 0;
//}



//double fit(double n)
//{
//	   if (n < 4)
//	 {
//		return n;
//	 }
//	   else
//	   return fit(n - 1) + fit(n - 2);
//}
//
//int main()
//{
//	double n = 0.0;
//	for (double x = 1.0; x <= 20.0; x++) 
//	{
//		n += fit(x + 1) / fit(x);
//	}
//	printf("%lf\n", n);
//	return 0;
//}

//void test(int *arr,size_t num)
//{
//    int* s = arr;
//    int* e = arr + num - 1;
//    while (s < e)
//    {
//        int temp = *s;
//        *s = *e;
//        *e = temp;
//        s++;
//        e--;
//    }
//}
//int main() {
//    int arr[] = { 1,2,3,4,5 };
//    size_t num = sizeof(arr) / sizeof(arr[0]);
//    test(arr,num);
//    for (int i = 0; i < num; i++)
//    {
//        printf("%d ", arr[i]);
//    }
//    printf("\n");
//    return 0;
//}

//void test(char*s,char*e)
//{
//	while (*s)
//		s++;
//	while (*e)
//	{
//		*s = *e;
//		s++;
//		e++;
//	}
//	*s = '\0';
//}
//int main()
//{
//	char ch[100] = "hello";
//	char df[100] = "world";
//	test(ch,df);
//	printf("%s", ch);
//	return 0;
//}

//size_t my_strlen(char* str)
//{
//	int mid = 0;
//	while (*str != '\0')
//	{
//		mid++;
//		str++;
//	}
//	return mid;
//}
//int main()
//{
//	char a[] = "abcedf";
//	size_t sum = my_strlen(a);
//	printf("%zd\n", sum);
//	return 0;
//}


//char* test(const char* s,const char* pch)
//{
//	char* move = (char*) s;
//	char* p1, *p2;
//	if (!*pch)
//	{
//		return (char*)s;
//	}
//	while (*move != '\0')
//	{
//		p1 = move;
//		p2 = (char*)pch;
//		while (*p1 && *p2 && !(*p1 - *p2))
//		{
//			p1++; p2++;
//		}
//		if (!*p2)
//		{
//			return move;
//		}
//		move++;
//	}
//	return NULL;
//}
//int main()
//{
//	char str[] = "I have pen.";
//	char pch[] = "pen";
//	char* p = test(str, pch);
//	printf("%s\n", p);
//	return 0;
//}

//#include <string.h>
//int main()
//{
//	char arr[] = "192.168.6.111";
//	const char* sep = ".";
//	const char* str = NULL;
//	char buf[30] = { 0 };
//	strcpy(buf, arr); //将arr中的字符串拷⻉到buf中，对buf的内容进⾏切割
//	for (str = strtok(buf, sep); str != NULL; str = strtok(NULL, sep))
//	{
//		printf("%s\n", str);
//	}
//	return 0;
//}

//#include <string.h>
//#include <errno.h>
//int main()
//{
//	FILE * pf = fopen("data.txt", "r");
//	if (pf == NULL)
//	{
//		/*printf("错误信息：%s\n", strerror(errno));*/
//		perror("错误信息是");
//		return 1;
//	}
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

#include <stdio.h>
#include <string.h>
int main()
{
	int arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
	int arr2[10] = { 0 };
	memcpy(arr2, arr1, 20);
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d ", arr2[i]);
	}
	return 0;
}